Linuxシステム管理入門3 パーミッションについて

2019年8月2日

Linuxシステムには「パーミッション」(権限)と呼ばれる機能があります。これはファイルやフォルダを操作する際に、ファイルに対してどのような操作が許されているかを制御するための仕組みです。

パーミッションはLinuxのシステム管理には必須です。ちょっと難しいんですが、セキュリティの基本です。トラブルの際には絶対チェックするポイントなのでしっかり覚えて起きましょう。

パーミッションとは

そもそもパーミッションとは何でしょうか。Linuxでは全てのファイル、全てフォルダに以下のパーミッションが設定されています。

  • r(読み出し許可) ファイルの内容表示 フォルダの内容表示
  • w(書き込み許可) ファイルの内容書換 フォルダ内に新規作成
  • x(実行許可)    ファイルの実行許可 フォルダ内に移動許可

上記のパーミッションが無いと、ファイル、フォルダへのアクセスができません。パーミッションはlsコマンドに-lオプションをつけると確認できます。(下の太線部)

testac@some1:~$ ls -l
total 4
drwxr-xr-x 2 testac testac 4096 Apr 3 19:12 folder1
-rw-r--r-- 1 testac testac 0 Apr 3 19:12 test.txt

初めの「-rw-r–r–」がパーミッションです。パーミッションは10文字ですが、1文字、3文字
(ファイル所有者 )、3文字(グループ)、3文字(全員)の4つの部分に分解して読みます。

初めの1文字はdならディレクトリ-ならフォルダを示しています。

2つ目の部分「rw-」は所有者に読み出し、書き込みの権限があることを示しています。xが-になっているので実行の権限はありません。もしtest.txtに実行権限xがあってもファイルの内容がプログラムで無いので実行してもエラーになります。

3つ目の部分「r–」はファイルの所有グループに読み出しだけの権限があることを示しています。

4つ目の部分「r–」はユーザー全員に読み出しだけの権限があることを示しています。

つまり「-rw-r–r–」は全員が読めるけど所有者だけ上書きできる権限を示しています。

これがディレクトリの場合はrはlsコマンドの結果表示、wは新規作成、xはディレクトリ内への移動ができるかどうかの権限になります。

グループ

パーミッションの中でグループについては説明が必要ですよね。どんなユーザーでも1つ以上のグループに所属しています。グループの一覧は/etc/groupファイルに書かれています。

このファイルにユーザーを追加する場合は管理者で以下のコマンドを使用します。私は/etc/groupを直接編集していましたが、あんまりよくないです。

# usermod -aG グループ名 ユーザー名

ユーザーをグループに追加したら、ログアウトログインで設定が反映されます。

まとめ

この記事ではLinuxのパーミッションについて説明をしました。

Linuxのファイルは管理者権限で間違って消してしまわないように一般ユーザーで処理できるところは一般ユーザーで処理します。なので、パーミッションを理解しないと作業ができないときがあります。

また、管理者に直接ログインできないようにしておけば、一般ユーザーと管理者の2段パスワードになりますのでセキュリティ的に強固になります。セキュリティ的に重要なファイルは管理者しか扱えないようにしてあります(-rwx——となる)。

パーミッションは少し理解が難しいですが、システム管理をする場合は理解しておく必要があります。